package com.mini.vo;

import com.mini.common.EncryptField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

/**
 * @author anjl
 * @title: BusinessStudentInfo
 * @date 2019/10/2711:28
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BusinessStudentInfoVO implements Serializable {


    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    private static final long serialVersionUID = 3399656550704502879L;
    @ApiModelProperty(value = "组id")
    private BigInteger groupId;

    private Date addWechatTime;

    @ApiModelProperty(value = "加群状态 0未加 1已加")
    private Integer addWechatGroupState;

    private Date admissionTestTime;

    private Integer bigLessonNumThisWeek;

    private Integer bigLessonNumOtherWeek;

    private Float orderExpense;

    private Float orderPrice;

    private Float orderCost;

    private Float bigLessonFlowThisWeek;

    private Float bigLessonFlowOtherWeek;

    private Integer bigLessonRefundNum;

    private Float bigLessonRefundAmount;

    private Date orderUpdateTime;

    private Date attachUpdateTime;

    private Date teacherUpdateTime;

    private Date classUpdateTime;

    private Date baseUpdateTime;

    private Date createTime;

    @ApiModelProperty(value = "运营专员id")
    private BigInteger teacherId;

    @ApiModelProperty(value = "运营专员名称")
    private BigInteger teacherName;

    @ApiModelProperty(value = "业务线，0加盐业务线 1集团业务线")
    private Integer businessType;

    @ApiModelProperty(value = "课程id")
    private String lessonId;

    @ApiModelProperty(value = "课程标题")
    private String lessonTitle;

    @ApiModelProperty(value = "小课业务ID")
    private BigInteger miniLessonId;

    @ApiModelProperty(value = "状态 1未加 2已加 ")
    private Integer states;

    private Date orderPayTime;


    /**
     * 2021-03-16 新增
     **/
    @ApiModelProperty(value = "是否使用优惠券 0未使用 1使用")
    private Integer getCoupon;

    @ApiModelProperty(value = "订单时间")
    @Field(type = FieldType.Date)
    private Date getCouponTime;

    @ApiModelProperty(value = "公众号关注标识 0未关注 1已关注")
    private Integer followPublic;

    @ApiModelProperty(value = "关注时间")
    private Date followPublicTime;

    @ApiModelProperty(value = "20200710增加 未支付0元单标识 0默认已支付 1未支付")
    private Integer unPayZeroState;


    /** 2021-03-16 新增出勤 **/
    @ApiModelProperty(value = "[出勤]orderNo")
    private String classOrderNo;

    @ApiModelProperty(value = "[出勤]出勤课节数-总")
    private Integer attnCount;

    @ApiModelProperty(value = "[出勤]出勤课节数-直播")
    private Integer attnLiveCount;

    @ApiModelProperty(value = "[出勤]出勤课节数-点播")
    private Integer attnVodCount;

    @ApiModelProperty(value = "[出勤]完课课节数-直播")
    private Integer finishLiveCount;

    @ApiModelProperty(value = "[出勤]完课课节数-总")
    private Integer finishCount;

    @ApiModelProperty(value = "[出勤]班次下的课节数-总")
    private Integer classCourseCount;

    @ApiModelProperty(value = "[出勤]直播时长")
    private BigInteger durationLiveCount;

    @ApiModelProperty(value = "直播或点播时长（单个课节取时间长的算）")
    private BigInteger durationCount;

    @ApiModelProperty(value = "班次下的所有课节时长总和")
    private BigInteger classCourseDuration;

    private Byte changeClassState;

    @ApiModelProperty(value = "工作室id", required = true)
    private BigInteger workRoomId;

    @ApiModelProperty(value = "工作室名称", required = true)
    private String workRoomName;

    @ApiModelProperty(value = "渠道标识")
    private String channelCode;

    @ApiModelProperty(value = "渠道名称")
    private String channelName;

    @ApiModelProperty(value = "负责人id")
    private BigInteger fzId;

    @ApiModelProperty(value = "负责人名称")
    private String fzName;

    @ApiModelProperty(value = "手机号")
    @EncryptField
    private String phoneNo;

    @ApiModelProperty(value = "微信id")
    private String wxId;

    @ApiModelProperty(value = "学员id")
    private String userId;

    @ApiModelProperty(value = "姓名")
    private String nickName;

    @ApiModelProperty(value = "微信昵称")
    private String wechatName;

    @ApiModelProperty(value = "微信备注昵称")
    private String wechatNameNote;
}
